#include<bits/stdc++.h>
#define il inline
#define ct const
#define int long long
#define pii pair<int,int>
#define fi first
#define se second
#define dl double
#define N 200010
#define mod 998244353
#define pk push_back
using namespace std;
//bool ppp;
il int read(){
	int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x*f;
}
il void write(int x){
	int cnt=0;char f[40];
	if(!x) putchar('0');
	if(x<0){
		x=-x;putchar('-');
	}
	while(x){
		f[cnt++]=x%10+'0';
		x/=10;
	}
	while(cnt) putchar(f[--cnt]);
	putchar('\n');
}
il int Pow(int a,int b){
	int res=1;
	while(b){
		if(b&1) res=res*a%mod;
		a=a*a%mod;
		b>>=1;
	}
	return res;
}
il void Add(int &a,int b){
	a=a+b>=mod?a+b-mod:a+b;
}
int head[N],nxt[N<<1],to[N<<1],t,flag;
il void add(int v,int u){
	if(v!=u+1) flag=1;
	nxt[++t]=head[u];head[u]=t;to[t]=v;
	nxt[++t]=head[v];head[v]=t;to[t]=u;
}
int n,k,dp[20010][410],fac[N],inv[N];
il int C(int a,int b){
	return fac[a]*inv[b]%mod*inv[a-b]%mod; 
}
//bool pppp;
signed main(){
//	cerr<<(&ppp-&pppp)/1024.0/1024.0<<"\n";
	freopen("soft.in","r",stdin);
	freopen("soft.out","w",stdout);
	n=read();k=read();
	for(int i=1;i<n;++i) add(read(),read());
	if(flag){
		dp[0][0]=1;
		for(int i=1,cnt;i<=n;++i){
			cnt=0;
			for(int j=i;j<=n;++j){
				++cnt;
				for(int h=head[j];h;h=nxt[h])
					if(to[h]>=i&&to[h]<j) --cnt;
				if(cnt==1) for(int h=0;h<k;++h) Add(dp[j][h+1],dp[i-1][h]);
			}
		}
		for(int i=1;i<=k;++i) write(dp[n][i]);
	}
	else{
		fac[0]=inv[0]=1;
		for(int i=1;i<=200000;++i){
			fac[i]=fac[i-1]*i%mod;inv[i]=Pow(fac[i],mod-2);
		}
		for(int i=1;i<=k;++i) write(C(n-1,i-1));
	}
	return 0;
}

